package com.kedacom.demo.quartz;

import java.io.Serializable;

import org.springframework.context.ApplicationContext;

/**
 * 伪Job类，通过在execute中获取Spring上下文中的targetJob bean. 并调用其相关的处理函数，来处理任务。 主要解决了Quartz
 * 与Spring 在集群环境下，注入MethodInvokingJobDetailFactoryBean中targetObject属性的实例（包含引用实例）
 * 必需序列化的问题。
 * @author yinjian
 * @date 2012-02-13
 */
public class PseudoJob implements Serializable {

	/** serialVersionUID */
	private static final long serialVersionUID = -3839224179459544913L;
	private String targetJob;

	/**
	 * 在Spring 上下文中取targetJob并执行其相关的处理函数
	 * @param cxt
	 */
	public void execute(ApplicationContext cxt) {
		Job job = (Job) cxt.getBean(this.targetJob);
		job.execute();
	}

	public String getTargetJob() {
		return targetJob;
	}

	public void setTargetJob(String targetJob) {
		this.targetJob = targetJob;
	}
}
